1991. 找到数组的中间位置

1991. 找到数组的中间位置

Similar Question

Solution Tips

方案一: 前缀和

记数组的全部元素之和为 total ,当遍历到第 i 个元素时,设其左侧元素之和为 sum,则其右侧元素之和为 total - nums[i] - sum. 左右侧元素相等即为 sum = total - nums[i] - sum,即 2 * sum + nums[i] = total

var findMiddleIndex = function(nums) {
    const total = nums.reduce((a, b) => a + b, 0);
    let sum = 0;
    for (let i = 0; i < nums.length; i++) {
        if (2 * sum + nums[i] === total) {
            return i;
        }
        sum += nums[i];
    }
    return -1;
};